1. Field of the Invention
The field of the invention is generally related to design structures, and more specifically, design structures for initializing expansion adapters installed in a computer system having similar expansion adapters.
2. Description of Related Art
The development of the EDVAC computer system of 1948 is often cited as the beginning of the computer era. Since that time, computer systems have evolved into extremely complicated devices. Today's computers are much more sophisticated than early systems such as the EDVAC. Computer systems typically include a combination of hardware and software components, application programs, operating systems, processors, buses, memory, input/output devices, and so on. Advances in semiconductor processing and computer architecture push the performance of the computer higher and higher.
Such advances in computer architecture have resulted in a computer system's ability to utilize other computer resources through expansion adapters containing option ROM. Expansion adapters containing option ROM are a valuable tool for expanding the functionality of computer systems. Including an option ROM with an expansion adapter allows an expansion card vendor to package initialization code and runtime code with the adapter. Packaging the initialization code and runtime code of an expansion adapter with an expansion adapter greatly simplifies the configuration of the expansion adapter because the expansion adapters are able to configure themselves rather than rely on system firmware.
Some computer architectures, such as the 32-bit x86 architecture developed by Intel, greatly limit the use of option ROM to promote backward compatibility earlier computer architectures. In those early computer architectures, total system computer memory was measured in kilobytes, and the size of a processor's address space was one megabyte. In today's computer architectures, computer memory is measured in gigabytes, and the size of a microprocessor's address space will soon be measured in terabytes. While total system memory and a processor's address space have increased by several orders of magnitude, the range of memory in a processor's memory address space devoted to option ROM has not increased at all. Just as in the early 1980's, the available size of the option ROM region in a processor's memory address space remains limited to a maximum of 256 kilobytes; however, on many of today's server and desktop computer architectures, only 128 kilobytes of this space is available for option ROM execution.
When computer architects first implemented option ROM, 256 kilobytes easily contained the option ROM initialization code of all adapters in the system. Since then, adapter functionality has become much more complex, and consequently, the address space required to address all the option ROMs in a computer system has also increased. For example, the option ROM of a single expansion bus adapter, such as a Small Computer System Interface (‘SCSI’) adapter, can take as much as 48 kilobytes to perform initialization of the adapter. That is, an expansion bus adapter may occupy up to 37.5% of the 128 kilobytes available in option ROM region of the address space on some platforms. In addition, computer systems often contain similar expansion adapters to enhance data processing efficiency, to provide failure recovery, or to provide failover capabilities. For example, many computer servers include two identical network adapters or multiple identical Redundant Array of Independent Disks (‘RAID’) controllers. Installing similar expansion adapters in a computer system results in the same computer code being mapped to multiple locations in the option ROM region of a processor's memory address space. Mapping multiple copies of the same computer code into the option ROM region of a processor's memory address space, however, often exceeds the 128 kilobyte limit and causes the computer system to fail during the boot sequence.